/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ufpa.sorteio.entidade;

import java.io.Serializable;
import java.util.List;
import java.util.Set;
import javax.persistence.CollectionTable;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

/**
 *
 * @author Weslley
 */
@Entity
public class Atividade implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    private String nome;
    private int quantidadeEquipes;
    private int tamanhoEquipe;
    
    private boolean aceitaRegistro;
    
    @ElementCollection
    @CollectionTable(name="temas", joinColumns=@JoinColumn(name="atividade_id"))
    private Set<String> temas;
    private String dataEntrega;
    
    @OneToMany(mappedBy="atividade")
    private List<Equipe> equipes;
    
    @ManyToOne
    private Professor professor;

    public Atividade() {
        this.aceitaRegistro = true;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getQuantidadeEquipes() {
        return quantidadeEquipes;
    }

    public void setQuantidadeEquipes(int quantidadeEquipes) {
        this.quantidadeEquipes = quantidadeEquipes;
    }

    public int getTamanhoEquipe() {
        return tamanhoEquipe;
    }

    public void setTamanhoEquipe(int tamanhoEquipe) {
        this.tamanhoEquipe = tamanhoEquipe;
    }

    public String getDataEntrega() {
        return dataEntrega;
    }

    public void setDataEntrega(String dataEntrega) {
        this.dataEntrega = dataEntrega;
    }

    public Set<String> getTemas() {
        return temas;
    }

    public void setTemas(Set<String> temas) {
        this.temas = temas;
    }

    public boolean isAceitaRegistro() {
        return aceitaRegistro;
    }

    public void setAceitaRegistro(boolean aceitaRegistro) {
        this.aceitaRegistro = aceitaRegistro;
    }

    public List<Equipe> getEquipes() {
        return equipes;
    }

    public void setEquipes(List<Equipe> equipes) {
        this.equipes = equipes;
    }

    public Professor getProfessor() {
        return professor;
    }

    public void setProfessor(Professor professor) {
        this.professor = professor;
    }

}
